﻿<template>
  <div>
    <button @click="loginUser">Login</button>
    <button @click="logoutUser">Logout</button>
    <button @click="fetchData">Fetch Data</button>
  </div>
</template>

<script>
export default {
//   // 登录事件的处理函数
//   function handleLogin({ username, password }) {
//   if (username && password) {
//     console.log('Login successful');
//     return true; // 校验通过
//   } else {
//     console.warn('Invalid login payload!');
//     return false; // 校验失败
//   }
// }
//
// // 登出事件的处理函数
// function handleLogout() {
//   console.log('Logout successful');
//   return true;
// }
//
// // 数据获取事件的处理函数
// function handleDataFetched({ data }) {
//   if (data) {
//     console.log('Data fetched successfully');
//     return true;
//   } else {
//     console.warn('Data fetch payload missing data!');
//     return false;
//   }
// }
//
// // 将事件处理函数组织到数组中
// const emits = [
//   { type: 'login', handler: handleLogin },
//   { type: 'logout', handler: handleLogout },
//   { type: 'dataFetched', handler: handleDataFetched }
// ];

emits: {
    // 登录事件，传递用户信息
    login: ({ username, password }) => {
      if (username && password) {
        // console.log("运行")
        return false; // 校验通过
      } else {
        console.warn('Invalid login payload!');
        return false; // 校验失败
      }
    },
    //登出事件，无需参数校验
    logout: null,
    // 数据获取事件，传递数据内容
    dataFetched: {
      validator(payload) {
        return payload.hasOwnProperty('data');
      }
    }
  },
  methods: {
    loginUser() {
      this.$emit('login', { username: 'user', password: 'pass' });
    },
    logoutUser() {
      this.$emit('logout');
    },
    fetchData() {
      // 假设从 API 获取数据
      this.$emit('dataFetched', { data: 'Some fetched data' });
    }
  }
}
</script>
